package cl.inmobiliaria.negocio;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import cl.inmobiliaria.entidades.BusquedaCotizacion;
import cl.inmobiliaria.persistencia.entity.Cotcliente;
import cl.inmobiliaria.persistencia.entity.Cotcotizacion;
import cl.inmobiliaria.persistencia.entity.Cotvisita;
import cl.inmobiliaria.persistencia.services.impl.CotizacionInmobiliaria;

public class BuscarCotizacion {

	private CotizacionInmobiliaria entBd = new  CotizacionInmobiliaria();
    private EntityManagerFactory emf = Persistence.createEntityManagerFactory("CotizacionInmobiliaria");
    private EntityManager em = emf.createEntityManager();
    
    public List<BusquedaCotizacion> buscarCotizaciones(Date fechaInicio){
    	
    	entBd.setEntityManager(em);
    	Collection<Cotvisita> cotVisita = entBd.buscarVisitas(fechaInicio);
    	List<Cotvisita> visitas = new ArrayList<Cotvisita>(cotVisita);
    	List<BusquedaCotizacion> busquedaList = new ArrayList<BusquedaCotizacion>();
    	String estado = "Vigente";
    	for (Cotvisita v : visitas){
    		BusquedaCotizacion busqueda = new BusquedaCotizacion();
    		Cotcotizacion cotizacion = entBd.buscarCotizacionPorVisitas(v.getId());
    		Cotcliente cliente = entBd.buscarClientePorRut(v.getRutCliente());
    		
    		if(cotizacion != null){
    			
        		if (cotizacion.getEstado() == 1){
    			estado= "Vigente";
    		}else{
    			estado= "No vigente";
    		}
    			
    		busqueda.setFechaVigencia(v.getFechaVisita());
    		busqueda.setRutCliente(cliente.getRut()+"-"+cliente.getDv());
    		busqueda.setNombreCliente(cliente.getNombres()+" "+cliente.getApellidoPaterno()+" "+cliente.getApellidoMaterno());
    		busqueda.setTotalUF(cotizacion.getTotalUf());
    		busqueda.setEstado(estado);
    		busqueda.setIdCotizacion(cotizacion.getId());
    		busquedaList.add(busqueda);
    		}
    	}
    	
    	return busquedaList;
    	
    }
	
	
}
